#include <REGX52.H>
#include "timer0.h"

/**
  * @brief  定时器0初始化函数, 100微秒@11.0592MHz
  * @param  无
  * @retval 无
  */
void Timer0_Init()
{
	TMOD &= 0xF0;		//设置定时器模式
	TMOD |= 0x01;		//设置定时器模式
	TL0 = 0x00;			//设置定时初值
	TH0 = 0x00;			//设置定时初值
	TF0 = 0;			//清除TF0标志
	TR0 = 0;			//不启动定时器0
}


/**
  * @brief  设置定时器0计数器初始值
  * @param  无
  * @retval 无
  */
void Timer0_SetCounter(unsigned int Counter)
{
	TL0 = Counter % 256;		//设置定时初值
	TH0 = Counter / 256;		//设置定时初值
}

/**
  * @brief  设置定时器0计数器初始值
  * @param  无
  * @retval 无
  */
unsigned int Timer0_GetCounter(void)
{
	unsigned int Counter;
	
	Counter = (TH0 << 8) | TL0;
	
	return Counter;
}

/**
  * @brief  设置定时器0计数器开始计数
  * @param  无
  * @retval 无
  */
void Timer0_Run(void)
{
	TR0 = 1;
}

/**
  * @brief  设置定时器0计数器停止计数
  * @param  无
  * @retval 无
  */
void Timer0_Stop(void)
{
	TR0 = 0;
}


/**
  * @brief  定时器0中断处理函数模版
  * @param  无
  * @retval 无
  */
//void Timer0_Routine(void) interrupt 1
//{
//	static unsigned int count = 0;
//	
//	count++;
//	//P2_0 = 0;
//	if(count >= 500)		//定时器T0每1ms中断一次，进入1000次经过了1s
//	{
//		P2_0 = ~P2_0;
//		count = 0;
//	}
//	
//	//定时器溢出之后需要重新装载
//	TH0 = (65535 - 1000) / 256;					//12MHz晶振，12分频
//	TL0 = (65535 - 1000) % 256 + 1; 			//
//}

